home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Benchmarks / hanoi.w < prev    next >
Encoding:
Text File  |  1989-04-14  |  1.2 KB  |  81 lines

  1. procedure  main/0
  2.  
  3. _446:
  4.     put_constant  &8,X1
  5.     execute_proc  hanoi/1
  6.  
  7.  
  8. procedure  hanoi/1
  9.  
  10. _793:
  11.     put_constant  left,X2
  12.     put_constant  center,X3
  13.     put_constant  right,X4
  14.     execute_proc  move/4
  15.  
  16.  
  17. procedure  move/4
  18.  
  19.     switch_on_term  _1756,_1757,_1757
  20. _1756:
  21.     try_me_else  _1767,4
  22. _1771:
  23.     get_constant  &0,X1
  24.     cut
  25.     proceed
  26. _1767:
  27.     trust_me_else  fail
  28. _1757:
  29.     get_variable_x  X5,X1
  30.     get_variable_y  Y1,X2
  31.     get_variable_y  Y2,X3
  32.     get_variable_y  Y3,X4
  33.     put_variable_y  Y4,X1
  34.     put_value_x  X5,X2
  35.     put_constant  -,X3
  36.     put_constant  &1,X4
  37.     escape  is/4
  38.     put_value_y  Y4,X1
  39.     put_value_y  Y1,X2
  40.     put_value_y  Y3,X3
  41.     put_value_y  Y2,X4
  42.     call  move/4,4
  43.     put_value_y  Y1,X1
  44.     put_value_y  Y2,X2
  45.     call  inform/2,4
  46.     put_unsafe_value  Y4,X1
  47.     put_value_y  Y3,X2
  48.     put_value_y  Y2,X3
  49.     put_value_y  Y1,X4
  50.     execute_proc  move/4
  51.  
  52.  
  53. procedure  inform/2
  54.  
  55. _2611:
  56.     try_me_else  _2616,2
  57. _2620:
  58.     put_list  X3
  59.     unify_constant_write  move
  60.     get_cdr_list_write
  61.     unify_constant_write  disk
  62.     get_cdr_list_write
  63.     unify_constant_write  from
  64.     get_cdr_list_write
  65.     unify_value_write_x  X1
  66.     get_cdr_list_write
  67.     unify_constant_write  to
  68.     get_cdr_list_write
  69.     unify_value_write_x  X2
  70.     unify_nil_write
  71.     put_value_x  X3,X1
  72.     escape  write/1
  73.     escape  nl/0
  74.     fail
  75. _2616:
  76.     trust_me_else  fail
  77. _2728:
  78.     proceed
  79.  
  80.  
  81.